property
Otázka od: mydelphiconf@centrum.cz
22. 9. 2004 9:34
Zdravim Delphiny,
nejsem vubec zbehly v Delphi, rad bych se poptal na pro vas asi zakladni vec.
u definice tridy TGauge jsou definovane "jakesi" properties ... nekde jsou
properties definovane jen takto:
property ForeColor: TColor read FForeColor;
nekde zas takto:
property ForeColor: TColor read FForeColor write SetForeColor;
muzete mi to nekdo prelozit do cestiny? Diky moc.
P.
Odpovedá: Petr Daricek
22. 9. 2004 10:02
Ahoj,
mas pravdu je to zakladni vec.
property Nazev:Integer read FNeco write SetNeco;
Znamena ze pro cteni se pouzije hodnota Fneco a pro zapis SetNeco. Pri cemz obe
tyto hodnoty mohou byt jak promenne stejneho typu jako property(v tomto pripade
Integer), nebo metody v prislusnem tvaru. Pro cteni se jedna o funkci bez
parametru, ktera ma jako vystupni hodnotu typ shodny s typem property a pro
zapis je to procedura jejimz jedinym vstupnim parametrem je promena opet
stejneho typu.
Pokud property neobsahuje v definici udaje o zapisu (write SetNeco), znamena
to ze je jenom pro cteni.
Petr
Odpovedá: Petr Brant
22. 9. 2004 10:44
Pokud je u definice property pouze read, znamena to, ze tato vlastnost je
pouze pro cteni. Kdyz se pokusis o zapis, kompilator to nepovoli. Pokud je
tam i write, lze property prirazovat nejakou hodnotu. Podle vzite konvence
znamena
property ForeColor: TColor read FForeColor write SetForeColor;
to, ze nastaveni hodnoty vyvola funkci SetForeColor (moznost osetreni
pripadnych chybnych vstupu atd.), pokud by deklarace znela
property ForeColor: TColor read FForeColor write FForeColor ;
pak nastaveni hodnoty znamena fyzicky prirazeni hodnoty promenne FForeColor
(bez moznosti kontroly spravnosti apod.). Obdobne je to i s read, tj. ctenim
hodnoty lze vyvolat funkci.
RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz
nejsem vubec zbehly v Delphi, rad bych se poptal na pro vas asi zakladni
vec.
u definice tridy TGauge jsou definovane "jakesi" properties ... nekde jsou
properties definovane jen takto:
property ForeColor: TColor read FForeColor;
nekde zas takto:
property ForeColor: TColor read FForeColor write SetForeColor;
muzete mi to nekdo prelozit do cestiny?